home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / g_quake / qmap20b4.zip / EXPLORER.TXT < prev    next >
Text File  |  1996-10-06  |  16KB  |  313 lines

  1.                       ---===  QUAKEMAP  ===---        for Windows 95
  2.  
  3. Version 2.0  (beta 4)
  4.  
  5. This is the documentation for the QuakeMap Explorer only.
  6. See EDITOR.TXT for documentation about the QuakeMap Editor.
  7.  
  8.  
  9.  *** What is QuakeMap Explorer ? ***
  10.  
  11.   QuakeMap is centered on a proprietary file format, near than PAK files,
  12.   which allows me to store some information about maps that couldn't be
  13.   stored in a standard MAP file, like grouped polyhedrons.
  14.  
  15.   More interestingly, we can now regroup several other datas than maps
  16.   in this proprietary file format. For example : new textures, or new
  17.   files to replace or complete ID standard files, like sound and model
  18.   files.
  19.  
  20.   Consider this : large maps often require A LOT of computing power, a
  21.   lot of time, and a lot of RAM to compile (I've "only" 16Mb - and I'm
  22.   having trouble compiling some large maps). That's why it would be
  23.   useful to distribute BSPs instead of (or with) MAPs. But BSPs are
  24.   large files, and it is illegal to distribute them, anyway, because it
  25.   usually contains some of ID's original textures. So I added the
  26.   ability to import BSP files, textures removed, in QuakeMap's files.
  27.   Not only does this reduce size, it makes the distribution of BSPs
  28.   legal. Then, on another computer, QuakeMap reconstructs the original
  29.   BSP, using textures from the local computer's PAK (or unPAKed) files.
  30.  
  31.   I have even included parts of the REACC program I made and distributed
  32.   (see DEACC & REACC). REACC is a compiler like QCC, which I wrote
  33.   without knowing that ID would release QCC. The purpose of
  34.   including REACC into QuakeMap is double.
  35.                                                 First, it will provide
  36.   another way to distribute QuakeC patches - a better way, because you
  37.   will distribute only portions of files that changed, not full files
  38.   like now. The interest of it is to allow you to use several patches at
  39.   once. This is usually not easy with the current method of distributing
  40.   complete modified files : to play with several of the patches,
  41.   you have to figure out what really changed in which file, and regroup
  42.   yourself the changes. QuakeMap's integrated patch compiler should be
  43.   able to deal with multiple patches from multiple sources.
  44.  
  45.   Second, it will allow us to associate QuakeC patches with particular
  46.   levels. We'll then be able to build level-specific programs, like we
  47.   did in Hexen. For example, we could do something like Hexen's first
  48.   level, where there are walls that make a half turn, fire a few fireballs
  49.   on you, and then rotate back in place. This could be done in a standard
  50.   QuakeC patch, but associating this patch with the level make it far
  51.   easier to use, and prevent oneself from playing the level without the
  52.   patch or vice-versa.
  53.                 
  54.   It also provides a consistent way of assigning actions with new keys -
  55.   you know, "impulse" commands. You'll be shown a list of new actions the
  56.   installed patches provides, and you'll have to choose a key for each
  57.   of them. QuakeMap will then automatically remap impulse numbers as
  58.   needed (useful for several patches from serveral sources) and
  59.   write the "autoexec.cfg" to bind them with the keys you choosen.
  60.  
  61.   I also plans to make a light-weight DOS run-time, easily distributable
  62.   and configurable, which would expand files of the proprietary file
  63.   format into playable files, with the correct directory structure, add
  64.   textures to BSPs, as well as compiling QC patches and prompting for
  65.   key assignment. Except this to come out in the final 2.0 version. With
  66.   this, you will be able to distribute .qme files without having to worry
  67.   about whether the other people have QuakeMap or not. This utility will
  68.   also let anyone extract .map files out of .qme files.
  69.  
  70.  
  71.  *** Introduction ***
  72.  
  73. The screen you see when you first open Quake Map is this Quake
  74. Map Explorer.  If you open a .qme file, the left portion of the
  75. screen will display the entries (such as text descriptions,
  76. patches, etc.) that are included.
  77.  
  78. When you click on an entry, you see its contents in the right portion
  79. of the screen. The exact contents of each entry depends on which type
  80. the entry is : map, code patch, etc. Each entry type has an associated
  81. icon to help distinguish between them. You can add, remove, rename, cut
  82. and paste entries. To add a new entry, choose the entry type in the
  83. "New" menu. If no entry is selected, the right portion of the screen
  84. displays a big, fat "GO!" button. If you click on it, you tell
  85. QuakeMap that you want to play Quake with the opened file. It will
  86. process each entry, i.e. extract maps, compile code, etc, and launch
  87. Quake. It is the easier way to try playing with a .qme file.
  88.  
  89. The .qme file actually contains *everything* included in it : the description,
  90. the map (not stored like a standard ".map", but in a binary format that allows
  91. hierarchy and that is much faster to load in the editor than a .map file), etc.
  92. Even the QuakeC patches are stored in the .qme. To distribute your creations,
  93. you only have to distribute the .qme file.
  94.  
  95. So this explorer can also be a Quake front-end, for loading desired
  96. patches and maps. If you make a .qme file and give it to somebody else, this
  97. person *must* have QuakeMap in order to use it. But if he loads your .qme in
  98. QuakeMap, the first thing he will see is the big "GO !" button. By just pressing
  99. this button, he tolds QuakeMap that he would like to play with this .qme. So
  100. QuakeMap extracts each map as a separate ".map" file, looks for the textures
  101. that are used in these maps, extract them in the temporary "gfx/quakemap.wad"
  102. from the .pak files; QuakeMap then regroups the QuakeC patches and compile them
  103. in a single pass (regrouped because the compiler is slow at loading and
  104. analysing the original "progs.dat" file, which will be modified). When all this
  105. is done, QuakeMap launches QBSP, VIS and LIGHT on the extracted .map files, and
  106. launches Quake, with a command-line parameter that makes Quake automatically
  107. load the first map in the .qme !
  108.  
  109. Other people need to have QuakeMap in order to use your .qme files, but that
  110. will change soon, with the introduction of the DOS run-time. You will then only
  111. have to distribute the .qme file and, if necessary, the small DOS-based program
  112. that allows anyone to run Quake with your .qme, as well as extract entries
  113. (extract maps as standard .map files, for example).
  114.  
  115. QuakeMap works by creating a parallel directory structure in the Quake
  116. directory, named QMapExec. When it runs Quake, it gives it the "-game QMapExec"
  117. parameter, and so Quake looks in the QMapExec directory and sub-directories
  118. first. If you want to play with a .qme, every files are extracted in the
  119. appropriate subdirectories : maps are stored in the directory "QMapExec\maps",
  120. for example. You should consider this QMapExec directory as temporary only,
  121. and never put anything by yourself there. It is totally cleared every time you
  122. click on the "GO!" button.
  123.  
  124.  
  125.  ** Descriptions **
  126.  
  127. The first type of entry that may be put in a .qme file is "description". It is
  128. used to write down standard description texts, like the ones you find on the
  129. Internet, associated with maps, and telling you who is the author, giving you
  130. a description of the map, etc.
  131.  
  132. You enter text in a "description" entry by using the forms you see in the right
  133. portion of the screen. Note that you can enter text formatting for the
  134. description. Of course, text attributes will not be used while producting the
  135. .txt file, but QuakeMap stores them and other people having QuakeMap will see
  136. them.
  137.  
  138. To build a .txt file out of a description, choose "export as .txt" in the
  139. "Description" menu.
  140.  
  141. Descriptions are not extracted automatically when you click on the "GO!"
  142. button.
  143.  
  144.  
  145.  ** Maps **
  146.  
  147. Entries of type "map" are... well, maps. They contains maps, but not stored in
  148. .map file format; instead, they are stored as a binary format that allows to
  149. save information like the hierarchy of groups and sub-groups. When you click on
  150. a "map" entry, you see a preview of the map at the right. To edit the map, you
  151. have to open the QuakeMap Editor by clicking on the corresponding button.
  152.  
  153. You can give every map a DOS filename (8 caracters maximum). Type it under
  154. "File name after extraction". This filename does not depend on the name of the
  155. entry itself (remember, you can give any entry any name). The DOS filename will
  156. be used when extracting the map as a .map file, and so it is the name you must
  157. type in the Quake console if you want to play with it later. For example, if
  158. you give a map the name "MyTest", it will be extracted as "MyTest.map" and you
  159. will be able to play with it by typing, in the Quake console, "MAP MYTEST".
  160.  
  161. Note that once the QuakeMap Editor is opened, you can choose, in the File menu,
  162. either "export as map" to save your map in a standard .map file, or "Save in
  163. new entry" to save your map in a new entry of the .qme file. To store the map
  164. in a new entry of another .qme file, you have to save it in a new entry in the
  165. current .qme file and use cut and paste to move it in the other .qme file.
  166.  
  167. Maps are extracted automatically when you click on the "GO!" button, and
  168. QBSP, VIS and LIGHT are launched. Quake is run by using a "+map xxx"
  169. command-line parameter to automatically load and play the first map found
  170. in the .qme file.
  171.  
  172.  
  173.  ** QuakeC **
  174.  
  175. These entities holds QuakeC code patches. You can write patches in standard
  176. QuakeC. However, they are a few things you must be aware of :
  177.  
  178.   - The integrated QC compiler is a patch compiler - that is, it takes the
  179.     original Progs.dat file, modifies it, and writes a new one. You don't
  180.     have to recompile all the .qc files released by id Software. Anyway,
  181.     you couldn't, because this compiler does not support some operations
  182.     that are essential to produce a Progs.dat but that make no sense for
  183.     patches, like modifying the system variables.
  184.  
  185.   - Unlike what you do usually with the .qc files, you should not distribute
  186.     a whole, modified .qc file as a patch. You should only write a modified
  187.     version of one or a few functions - only the ones that needs changes,
  188.     and not a whole .qc file !
  189.  
  190.   - To let the user play with multiple patches from multiple sources, you
  191.     should, whenever possible, modify functions by only adding something
  192.     at its begin or at its end. This is done trough the special "inherited"
  193.     variable, which contains the address of the original function when you
  194.     are overwriting one. See Rockets.qme for examples of this.
  195.  
  196.   - A few keywords have been added to easily bind actions with keys. You
  197.     can bind the execution of a function to a key. In standard ways, you
  198.     would have to modify the W_WeaponFrame function to add support for your
  199.     new function, through an IMPULSE command. This is automated with
  200.     QuakeMap : IMPULSE numbers are choosen automatically, and W_WeaponFrame
  201.     is modified in the background. See Radar.qme and BindTest.qme for
  202.     examples of this.
  203.  
  204.   - When you run a QuakeC patch that contains "bind" commands, you will be
  205.     asked to choose which key you want to bind to the actions. This lets
  206.     the user of your .qme files know which special actions your patch
  207.     provides, and see and if he wants change the keys.
  208.  
  209.  
  210.  ** Compiled BSP **
  211.  
  212. You can include a compiled map into your .qme file. This enlarge its size,
  213. of course, but it lets other users play your maps without having to run
  214. QBSP/VIS/LIGHT first. For large maps, this may be a great time saving for
  215. them, especially if their computer is not too powerful or has not enough RAM
  216. to compile large maps.
  217.  
  218. Like maps, you must give every included .bsp a DOS filename that will be used
  219. for extraction. Note that you can distribute both the map and the
  220. corresponding, precomputed .bsp file in the same .qme file. As long as their
  221. DOS filenames are the same, the -bsp file is considered to be the compiled
  222. version of the map, and the map is not extracted and recompiled when you click
  223. on the "GO!" button - only the .bsp is.
  224.  
  225. For room saving as well as for legal concerns, textures will be removed from
  226. the included .bsp files, and restored when the .bsp needs to be extracted.
  227. Here are some explanations about this process.
  228.  
  229. In fact, if you remove textures from a standard .bsp file, then it is no longer
  230. a standard .bsp file. What QuakeMap does, is allowing you to store into .qme
  231. files a copy of parts of a .bsp. A standard .bsp file holds a predefined number
  232. of entries - you may think of them like .pak files, but with no explicit
  233. filename. The first entry is the Entities data, the second entry is Planes data,
  234. the third one is Textures, and so on. So what QuakeMap does is reading each of
  235. the .bsp entries, and storing them in the .qme, except the Textures entry, which
  236. is only stored in the .qme as a list of texture names, instead of actual texture
  237. images. When you use QuakeMap to extract the integrated .bsp, it does the
  238. opposite job and uses texture names - and the original textures found in the
  239. .pak files - to rebuild a standard .bsp.
  240.  
  241. Q: Could there be a problem if a level is created with some textures removed
  242.    from a .bsp/.pak that the new user does not have ?
  243.  
  244. The textures you used from a .bsp from ID Software is supposed to be available
  245. on every machine running Quake. The only problem would be if you used textures
  246. that are not available in the Shareware version of Quake, but you are not
  247. supposed to do a Quake editor that works well with the Shareware version, are
  248. you ?  ,-)   Anyway, ID removed support for modified Quake in the Shareware
  249. version.
  250.  
  251. Now, with the current version of QuakeMap, you can't use - at all - personal
  252. textures you made yourself or you got from elsewhere. But I plan to add support
  253. for this. You would have to make a new entry in the .qme file, which physically
  254. holds your textures. This way, you could distribute your .qme files without
  255. trouble - non-standard textures would systematically be stored in the file. See
  256. "New textures" in the "New" menu.
  257.  
  258.  
  259.  ** New textures **
  260.  
  261. Not implemented yet !
  262.  
  263.  
  264.  ** Imported file **
  265.  
  266. Imported files are files that are stored directly in the .qme file, ready to
  267. be extracted in a particular sub-directory. For example, to include a new
  268. sound in your .qme, all you have to do is to make a new entry and importing
  269. the .wav file in it. Like for maps and compiled BSPs, you have to give the
  270. DOS filename for this file, but this time with the path. For example, sounds
  271. must be stored in the "sounds/" subdirectory, so you would give your file the
  272. DOS filename : "sounds\mysound.wav". See Radar.qme for this example.
  273.  
  274. Imported files are automatically extracted when you click on the "GO!" button.
  275.  
  276.  
  277.  ** Links to id's textures **
  278.  
  279. This type of entry is not available to you. I used it in file Models.qme to
  280. make links to id's original textures and organize them into groups. You can't
  281. change this group organization - at least for now.
  282.  
  283.  
  284.  *** The standard Models.qme file ***
  285.  
  286. This file is required for QuakeMap to run. It contains several important
  287. informations, like models for making new entries, the list of the new
  288. entities that you may put in your maps, the links to id's textures, etc.
  289.  
  290. I will extend the documentation concerning this file in a future release of
  291. QuakeMap. For now, look by yourself.
  292.  
  293.  
  294.  
  295.  *** Conclusion ***
  296.  
  297. I hope this short documentation, with the examples, should be enough for you
  298. to experiment the QuakeMap Explorer, and realize how useful it may be to
  299. work with .qme files. As I said, I hope that this file format will prove to
  300. be good for distribution also, and that it will generalize itself with the
  301. introduction of the DOS run-time.
  302.  
  303.  
  304. NO WARRANTIES, either expressed or implied. This software is
  305. provided "as is". Use at your own risk. The author cannot be held
  306. responsible for any damage caused to your computer or its data.
  307. Quake and all associated logo's and textures are the property of
  308. id Software.
  309.  
  310.  
  311. Author : Armin Rigo, armin.rigo@p22.gnothi.fn.alphanet.ch
  312. Comments/bug reports are welcome and encouraged.
  313.